package com.xxxx.server.controller;


import com.xxxx.server.pojo.Joblevel;
import com.xxxx.server.pojo.RespBean;
import com.xxxx.server.service.IJoblevelService;
import com.xxxx.server.service.impl.JoblevelServiceImpl;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;

/**

 *职称管理接口
 */
@RestController
//从前端JoblevelMana处取到的接口
@RequestMapping("system/basic/joblevel")
public class JoblevelController {

    @Autowired
    private JoblevelServiceImpl joblevelService;

    /**
     * 获取所有职称
     * @return List集合
     */
    @GetMapping("/")
    @ApiOperation(value = "获取所有职称")
    public List<Joblevel> getAllJobLevels(){
        //这里在joblevelService里可以直接调用list()方法，不用新生成一个
        //joblevelService.getAllJobLevels()
        return joblevelService.list();
    }

    /**
     * 添加职称
     * @return 返回结果信息
     */
    @PostMapping("/")
    @ApiOperation(value = "添加职称")
    public RespBean addJobLevel(@RequestBody Joblevel joblevel){
        //设置添加时间
        joblevel.setCreateDate(LocalDateTime.now());
        //设置enable  默认为true,不用设置
        //joblevel.setEnabled(true);
        //判断是否添加成功
        if (joblevelService.save(joblevel)){
            return RespBean.success("添加成功");
        }
        return RespBean.error("添加失败");
    }

    /**
     *更新职称信息
     * @return
     */
    @PutMapping("/")
    @ApiOperation(value = "更新职称")
    public RespBean doUpdate(@RequestBody Joblevel joblevel){
        if (joblevelService.updateById(joblevel)){
            return RespBean.success("更新成功");
        }
        return RespBean.error("更新失败");
    }
    /**
     *根据ID删除职称
     * @return
     */
    @DeleteMapping("/{id}")
    @ApiOperation(value = "删除职称")
    public RespBean deleteHandler(@PathVariable Integer id){
        if (joblevelService.removeById(id)){
            return RespBean.success("删除成功");
        }
        return RespBean.error("删除失败");
    }
    /**根据前端接口  这里需要
     * 根据ID数组批量删除
     * @return
     */
    @DeleteMapping("/")
    @ApiOperation(value = "批量删除职称")
    public RespBean deleteMany(Integer[] ids){
        if (joblevelService.removeByIds(Arrays.asList(ids))){
            return RespBean.success("删除成功");
        }
        return RespBean.error("删除失败");
    }
}
